package com.jiang.mybatis.common.enums;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import com.jiang.core.annto.SwaggerDisplayEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * =====================================================================================================================
 * jiangshaoneng <15673219519.@163.com> 2022/10/26 10:49
 * =====================================================================================================================
 */
@AllArgsConstructor
@SwaggerDisplayEnum
public enum GenderEnum {

    DEFAULT(0, "未知"), MAN(1, "男"), WOMAN(2, "女")
    ;

    private final Integer value;
    @Getter
    private final String desc;

    // 序列化
    @JsonValue
    public Integer getValue(){
        return this.value;
    }

    // swagger文档显示
    @Override
    public String toString(){
        return value + "-" + desc;
    }

    // 反序列化
    @JsonCreator(mode = JsonCreator.Mode.DELEGATING)
    public static GenderEnum getItem(Integer value){
        for(GenderEnum item : values())
            if(item.getValue().equals(value)) return item;
        return null;
    }
}
